Oversampling is a useful technique for extracting timing information such as frequency, phase, or skew from a signal or series of signals. It is frequently employed in data recovery systems.
Oversampling is often accomplished by 1) providing a common data signal to each of a number of flip-flops, 2) generating multiple phases of a base clock (e.g., using a tapped delay line, a tapped ring oscillator, or a delay locked loop (DLL)), and then 3) providing each of the clock phases to a different one of the flip-flops. The frequency at which the data signal is sampled is thereby increased over the frequency at which the base clock alone would have sampled the data signal. The higher frequency at which the data signal is sampled is the “oversampling frequency”, and the number of clock phases used to initiate the oversampling is the “oversampling factor”.